if (window.PrimeFaces) {
    /**
     * Bahasa Indonesia
     */
    PrimeFaces.locales['in'] = {
        "startsWith": "Dimulai dengan",
        "contains": "Mengandung",
        "notContains": "Tidak mengandung",
        "endsWith": "Berakhir dengan",
        "equals": "Sama",
        "notEquals": "Tidak sama",
        "noFilter": "Tanpa Filter",
        "filter": "Filter",
        "lt": "Kurang dari",
        "lte": "Kurang dari atau sama dengan",
        "gt": "Lebih dari",
        "gte": "Lebih dari atau sama dengan",
        "dateIs": "Tanggal adalah",
        "dateIsNot": "Tanggalnya tidak",
        "dateBefore": "Tanggalnya sebelum",
        "dateAfter": "Tanggalnya sesudah",
        "custom": "Custom",
        "clear": "Bersih",
        "apply": "Terapkan",
        "matchAll": "Cocok dengan semua",
        "matchAny": "Cocok dengen salah satu",
        "addRule": "Tambah Aturan",
        "removeRule": "Hapus Aturan",
        "accept": "Terima",
        "reject": "Tolak",
        "choose": "Pilih",
        "upload": "Unggah",
        "cancel": "Batal",
        "completed": "Selesai",
        "pending": "Menunggu",
        "dayNames": ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"],
        "dayNamesShort": ["Mig", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"],
        "dayNamesMin": ["Mi", "Se", "Se", "Ra", "Ka", "Ju", "Sa"],
        "monthNames": ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"],
        "monthNamesShort": ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Agu", "Sep", "Okt", "Nov", "Des"],
        "chooseYear": "Pilih Tahun",
        "chooseMonth": "Pilih Bulan",
        "chooseDate": "Pilih Tanggal",
        "prevDecade": "Dekade Sebelumnya",
        "nextDecade": "Dekade Selanjutnya",
        "prevYear": "Tahun Sebelumnya",
        "nextYear": "Tahun Selanjutnya",
        "prevMonth": "Bulan Sebelumnya",
        "nextMonth": "Bulan Selanjutnya",
        "prevHour": "Jam Sebelumnya",
        "nextHour": "Jam Selanjutnya",
        "prevMinute": "Menit Sebelumnya",
        "nextMinute": "Menit Selanjutnya",
        "prevSecond": "Detik Sebelumnya",
        "nextSecond": "Detik Selanjutnya",
        "am": "am",
        "pm": "pm",
        "today": "Hari ini",
        "weekHeader": "Wk",
        "firstDayOfWeek": 1,
        "showMonthAfterYear": false,
        "dateFormat": "dd/mm/yy",
        "weak": "Lemah",
        "medium": "Sedang",
        "strong": "Kuat",
        "passwordPrompt": "Masukkan Kata Sandi",
        "emptyFilterMessage": "Hasil pencarian tidak ditemukan",
        "searchMessage": "{0} hasil tersedia",
        "selectionMessage": "{0} item dipilih",
        "emptySelectionMessage": "Tidak ada item dipilih",
        "emptySearchMessage": "Tidak menemukan hasil pencarian",
        "emptyMessage": "Tidak ada opsi tersedia",
        "aria": {
            "trueLabel": "Betul",
            "falseLabel": "Salah",
            "nullLabel": "Tidak dipilih",
            "star": "bintang 1",
            "stars": "{star} bintang",
            "selectAll": "Semua item dipilih",
            "unselectAll": "Tidak memilih semua item",
            "close": "Tutup",
            "previous": "Sebelumnya",
            "next": "Selanjutnya",
            "navigation": "Navigasi",
            "scrollTop": "Scroll ke paling atas",
            "moveTop": "Pindah ke paling atas",
            "moveUp": "Pindah ke atas",
            "moveDown": "Pindah ke bawah",
            "moveBottom": "Pindah ke paling bawah",
            "moveToTarget": "Pindah ke Target",
            "moveToSource": "Pindah ke Sumber",
            "moveAllToTarget": "Pindah Semua ke Target",
            "moveAllToSource": "Pindah Semua ke Sumber",
            "pageLabel": "Halaman {page}",
            "firstPageLabel": "Halaman Pertama",
            "lastPageLabel": "Halaman Terakhir",
            "nextPageLabel": "Halaman Selanjutnya",
            "previousPageLabel": "Halaman Sebelumnya",
            "rowsPerPageLabel": "Baris per halaman",
            "jumpToPageDropdownLabel": "Loncat ke halaman Dropdown",
            "jumpToPageInputLabel": "Loncat ke halaman Input",
            "selectRow": "Baris Dipilih",
            "unselectRow": "Baris Tidak Dipilih",
            "expandRow": "Bentangkan Baris",
            "collapseRow": "Lipat Baris",
            "showFilterMenu": "Tampilkan Menu Filter",
            "hideFilterMenu": "Sembunyikan Menu Filter",
            "filterOperator": "Operator Filter",
            "filterConstraint": "Batasan Filter",
            "editRow": "Ubah Baris",
            "saveEdit": "Simpan Perubahan",
            "cancelEdit": "Batalkan Perubahan",
            "listView": "Tampilan Daftar",
            "gridView": "Tampilan Grid",
            "slide": "Slide",
            "slideNumber": "{nomorSlide}",
            "zoomImage": "Perbesar Gambar",
            "zoomIn": "Perbesar",
            "zoomOut": "Perkecil",
            "rotateRight": "Putar ke Kanan",
            "rotateLeft": "Putar ke Kiri"
        }
    };

// custom PF labels
    PrimeFaces.locales['in'] = $.extend(true, {}, PrimeFaces.locales['in'], {
        weekNumberTitle: 'M',
        isRTL: false,
        yearSuffix: '',
        timeOnlyTitle: 'Hanya Waktu',
        timeText: 'Waktu',
        hourText: 'Jam',
        minuteText: 'Menit',
        secondText: 'Detik',
        millisecondText: 'Mili Detik',
        year: 'Tahun',
        month: 'Bulan',
        week: 'Minggu',
        day: 'Hari',
        list: 'Agenda',
        allDayText: 'Sepanjang Hari',
        moreLinkText: 'Lebih Banyak...',
        noEventsText: 'Tidak Ada Acara',
        aria: {
            'datatable.sort.ASC': 'Aktifkan untuk mengurutkan dari kecil ke besar',
            'datatable.sort.DESC': 'Aktifkan untuk mengurukan dari besar ke kecil',
            'switch.ON': 'Pada',
            'switch.OFF': 'Mati',
            'messages.ERROR': 'Error',
            'messages.FATAL': 'Fatal',
            'messages.INFO': 'Informasi',
            'messages.WARN': 'Peringatan'
        },
        messages: { //optional for Client Side Validation
            'javax.faces.component.UIInput.REQUIRED': '{0}: Kesalahan Validasi: Nilai diperlukan.',
            'javax.faces.converter.IntegerConverter.INTEGER': '{2}: \'{0}\' harus terdiri dari satu angka atau lebih.',
            'javax.faces.converter.IntegerConverter.INTEGER_detail': '{2}: \'{0}\' harus berupa bilangan di antara -2147483648 dan 2147483647. Contoh: {1}.',
            'javax.faces.converter.DoubleConverter.DOUBLE': '{2}: \'{0}\' harus berupa bilangan yang terdiri dari satu angka atau lebih.',
            'javax.faces.converter.DoubleConverter.DOUBLE_detail': '{2}: \'{0}\' harus berupa bilangan di antara 4.9E-324 dan 1.7976931348623157E308. Contoh: {1}.',
            'javax.faces.converter.BigDecimalConverter.DECIMAL': '{2}: \'{0}\' harus berupa bilangan desimal bertanda.',
            'javax.faces.converter.BigDecimalConverter.DECIMAL_detail': '{2}: \'{0}\' harus berupa bilangan desimal bertanda yang terdiri dari nol angka atau lebih, yang mungkin dapat diikuti oleh nilai desimal atau pecahan. Contoh: {1}.',
            'javax.faces.converter.BigIntegerConverter.BIGINTEGER': '{2}: \'{0}\' harus berupa bilangan yang terdiri dari satu angka atau lebih.',
            'javax.faces.converter.BigIntegerConverter.BIGINTEGER_detail': '{2}: \'{0}\' harus berupa bilangan yang terdiri dari satu angka atau lebih. Contoh: {1}.',
            'javax.faces.converter.ByteConverter.BYTE': '{2}: \'{0}\' harus berupa bilangan di antara 0 dan 255.',
            'javax.faces.converter.ByteConverter.BYTE_detail': '{2}: \'{0}\' harus berupa bilangan di antara 0 dan 255. Contoh: {1}.',
            'javax.faces.converter.CharacterConverter.CHARACTER': '{1}: \'{0}\' harus karakter yang valid.',
            'javax.faces.converter.CharacterConverter.CHARACTER_detail': '{1}: \'{0}\' harus karakter ASCII yang valid.',
            'javax.faces.converter.ShortConverter.SHORT': '{2}: \'{0}\' harus berupa bilangan yang terdiri dari satu angka atau lebih.',
            'javax.faces.converter.ShortConverter.SHORT_detail': '{2}: \'{0}\' harus berupa bilangan di antara -32768 dan 32767. Contoh: {1}.',
            'javax.faces.converter.BooleanConverter.BOOLEAN': '{1}: \'{0}\' harus \'benar\' atau \'salah\'.',
            'javax.faces.converter.BooleanConverter.BOOLEAN_detail': '{1}: \'{0}\' harus \'benar\' atau \'salah\'.  Nilai selain \'benar\' akan dievaluasi sebagai \'salah\'.',
            'javax.faces.validator.LongRangeValidator.MAXIMUM': '{1}: Kesalahan Validasi: Nilai lebih besar daripada nilai maksimum yang diperbolehkan, yaitu \'{0}\'.',
            'javax.faces.validator.LongRangeValidator.MINIMUM': '{1}: Kesalahan Validasi: Nilai lebih kecil daripada nilai minimum yang diperbolehkan, yaitu \'{0}\'.',
            'javax.faces.validator.LongRangeValidator.NOT_IN_RANGE': '{2}: Kesalahan Validasi: Atribut yang ditetapkan tidak berada di antara nilai yang diharapkan, yaitu {0} dan {1}.',
            'javax.faces.validator.LongRangeValidator.TYPE': '{0}: Kesalahan Validasi: Nilai memiliki jenis yang tidak tepat.',
            'javax.faces.validator.DoubleRangeValidator.MAXIMUM': '{1}: Kesalahan Validasi: Nilai lebih besar daripada nilai maksimum yang diperbolehkan, yaitu \'{0}\'.',
            'javax.faces.validator.DoubleRangeValidator.MINIMUM': '{1}: Kesalahan Validasi: Nilai lebih kecil daripada nilai minimum yang diperbolehkan, yaitu \'{0}\'.',
            'javax.faces.validator.DoubleRangeValidator.NOT_IN_RANGE': '{2}: Kesalahan Validasi: Atribut yang ditetapkan tidak berada di antara nilai yang diharapkan, yaitu {0} dan {1}.',
            'javax.faces.validator.DoubleRangeValidator.TYPE': '{0}: Kesalahan Validasi: Nilai memiliki jenis yang tidak tepat.',
            'javax.faces.converter.FloatConverter.FLOAT': '{2}: \'{0}\' harus berupa bilangan yang terdiri dari satu angka atau lebih.',
            'javax.faces.converter.FloatConverter.FLOAT_detail': '{2}: \'{0}\' harus berupa bilangan di antara 1.4E-45 dan 3.4028235E38  Contoh: {1}.',
            'javax.faces.converter.DateTimeConverter.DATE': '{2}: \'{0}\' tidak bisa diterjemahkan sebagai tanggal.',
            'javax.faces.converter.DateTimeConverter.DATE_detail': '{2}: \'{0}\' tidak bisa diterjemahkan sebagai tanggal. Contoh: {1}.',
            'javax.faces.converter.DateTimeConverter.TIME': '{2}: \'{0}\' tidak bisa diterjemahkan sebagai waktu.',
            'javax.faces.converter.DateTimeConverter.TIME_detail': '{2}: \'{0}\' tidak bisa diterjemahkan sebagai waktu. Contoh: {1}.',
            'javax.faces.converter.DateTimeConverter.DATETIME': '{2}: \'{0}\' tidak bisa diterjemahkan sebagai tanggal dan waktu.',
            'javax.faces.converter.DateTimeConverter.DATETIME_detail': '{2}: \'{0}\' tidak bisa diterjemahkan sebagai tanggal dan waktu. Contoh: {1}.',
            'javax.faces.converter.DateTimeConverter.PATTERN_TYPE': '{1}: Atribut \'pattern\' atau \'type\' harus ditetapkan untuk dapat mengkonversi nilai \'{0}\'.',
            'javax.faces.converter.NumberConverter.CURRENCY': '{2}: \'{0}\' tidak bisa diterjemahkan sebagai nilai mata uang.',
            'javax.faces.converter.NumberConverter.CURRENCY_detail': '{2}: \'{0}\' tidak bisa diterjemahkan sebagai nilai mata uang. Contoh: {1}.',
            'javax.faces.converter.NumberConverter.PERCENT': '{2}: \'{0}\' tidak bisa diterjemahkan sebagai persentase.',
            'javax.faces.converter.NumberConverter.PERCENT_detail': '{2}: \'{0}\' tidak bisa diterjemahkan sebagai persentase. Contoh: {1}.',
            'javax.faces.converter.NumberConverter.NUMBER': '{2}: \'{0}\' tidak bisa diterjemahkan sebagai angka.',
            'javax.faces.converter.NumberConverter.NUMBER_detail': '{2}: \'{0}\' tidak bisa diterjemahkan sebagai angka. Contoh: {1}.',
            'javax.faces.converter.NumberConverter.PATTERN': '{2}: \'{0}\' tidak bisa diterjemahkan sebagai pola angka.',
            'javax.faces.converter.NumberConverter.PATTERN_detail': '{2}: \'{0}\' tidak bisa diterjemahkan sebagai pola angka. Contoh: {1}.',
            'javax.faces.validator.LengthValidator.MINIMUM': '{1}: Kesalahan Validasi: Panjang kurang dari nilai minimum yang diperbolehkan, yaitu \'{0}\'.',
            'javax.faces.validator.LengthValidator.MAXIMUM': '{1}: Kesalahan Validasi: Panjang lebih dari nilai maksimum yang diperbolehkan, yaitu \'{0}\'.',
            'javax.faces.validator.RegexValidator.PATTERN_NOT_SET': 'Pola Regex harus ditetapkan.',
            'javax.faces.validator.RegexValidator.PATTERN_NOT_SET_detail': 'Pola Regex harus ditetapkan ke nilai yang tidak kosong.',
            'javax.faces.validator.RegexValidator.NOT_MATCHED': 'Pola Regex tidak cocok.',
            'javax.faces.validator.RegexValidator.NOT_MATCHED_detail': 'Pola Regex dari \'{0}\' tidak cocok.',
            'javax.faces.validator.RegexValidator.MATCH_EXCEPTION': 'Kesalahan pada Regex.',
            'javax.faces.validator.RegexValidator.MATCH_EXCEPTION_detail': 'Kesalahan pada Regex, \'{0}\'.',
            //optional for bean validation integration in client side validation
            'javax.faces.validator.BeanValidator.MESSAGE': '{0}',
            'javax.validation.constraints.AssertFalse.message': 'nilai harus salah.',
            'javax.validation.constraints.AssertTrue.message': 'nilai harus benar.',
            'javax.validation.constraints.DecimalMax.message': 'harus lebih kecil daripada atau sama dengan {0}.',
            'javax.validation.constraints.DecimalMin.message': 'harus lebih besar daripada atau sama dengan {0}.',
            'javax.validation.constraints.Digits.message': 'nilai numerik di luar jangkauan (&lt;{0} angka&gt;.&lt;{1} angka&gt; yang diharapkan).',
            'javax.validation.constraints.Future.message': 'harus ada di masa depan.',
            'javax.validation.constraints.Max.message': 'harus lebih kecil daripada atau sama dengan {0}.',
            'javax.validation.constraints.Min.message': 'harus lebih besar daripada atau sama dengan {0}.',
            'javax.validation.constraints.NotNull.message': 'tidak boleh null.',
            'javax.validation.constraints.Null.message': 'harus null.',
            'javax.validation.constraints.Past.message': 'harus ada di masa lalu.',
            'javax.validation.constraints.Pattern.message': 'harus cocok dengan "{0}".',
            'javax.validation.constraints.Size.message': 'ukuran harus di antara {0} dan {1}.'
        }
    });

    PrimeFaces.locales['in_ID'] = PrimeFaces.locales['in'];
}